package com.lz.ccjdemo.utils;

import android.content.Context;
import android.speech.tts.TextToSpeech;
import android.util.Log;

import com.lz.ccjdemo.App;

import java.util.Locale;

/*语音播报*/
public class TtsUtils {
   private TextToSpeech tts;

    private  boolean isInitSuccess =false;
    private static class LazyHolder {
        private static final TtsUtils INSTANCE = new TtsUtils();
    }

    public TtsUtils(){
        init(App.getApp());
    }

    public static TtsUtils getInstance() {
        return LazyHolder.INSTANCE;
    }

    private void init(Context context) {
        tts = new TextToSpeech(context, new TextToSpeech.OnInitListener() {
            @Override
            public void onInit(int status) {
                if (status == TextToSpeech.SUCCESS) {
                    // 初始化成功，可以进行语音合成
                    isInitSuccess=true;
                } else {
                    // 初始化失败
                    isInitSuccess=false;
                }
            }
        });
        //设置中文
        Locale locale = new Locale("zh-CN", "CN");
        tts.setLanguage(locale);

        // 设置语速，范围通常是0.1到2.0，其中1.0是正常语速
        float speechRate = 1.0f;
        tts.setSpeechRate(speechRate);
    }

    /**
     * 将文字转换语音并播放
     * @param strToSpeak  "你好，这是一个文本到语音的例子。";
     * Demo TtsUtils.getInstance().playStr("你好，这是一个文本到语音的例子。");
     */
    public void playStr(String strToSpeak){
        if (!isInitSuccess){
            Log.e("TtsUtils","语言转换 TextToSpeech 未初始化或初始化失败");
        }
        tts.speak(strToSpeak, TextToSpeech.QUEUE_FLUSH, null, null);
    }
}
